package com.crm.model.entity.report;

import java.util.ArrayList;
import java.util.List;

public class ReportPerformanceTopExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ReportPerformanceTopExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andRankIsNull() {
            addCriterion("rank is null");
            return (Criteria) this;
        }

        public Criteria andRankIsNotNull() {
            addCriterion("rank is not null");
            return (Criteria) this;
        }

        public Criteria andRankEqualTo(String value) {
            addCriterion("rank =", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotEqualTo(String value) {
            addCriterion("rank <>", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankGreaterThan(String value) {
            addCriterion("rank >", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankGreaterThanOrEqualTo(String value) {
            addCriterion("rank >=", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankLessThan(String value) {
            addCriterion("rank <", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankLessThanOrEqualTo(String value) {
            addCriterion("rank <=", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankLike(String value) {
            addCriterion("rank like", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotLike(String value) {
            addCriterion("rank not like", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankIn(List<String> values) {
            addCriterion("rank in", values, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotIn(List<String> values) {
            addCriterion("rank not in", values, "rank");
            return (Criteria) this;
        }

        public Criteria andRankBetween(String value1, String value2) {
            addCriterion("rank between", value1, value2, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotBetween(String value1, String value2) {
            addCriterion("rank not between", value1, value2, "rank");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNull() {
            addCriterion("company_name is null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNotNull() {
            addCriterion("company_name is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameEqualTo(String value) {
            addCriterion("company_name =", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotEqualTo(String value) {
            addCriterion("company_name <>", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThan(String value) {
            addCriterion("company_name >", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThanOrEqualTo(String value) {
            addCriterion("company_name >=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThan(String value) {
            addCriterion("company_name <", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThanOrEqualTo(String value) {
            addCriterion("company_name <=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLike(String value) {
            addCriterion("company_name like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotLike(String value) {
            addCriterion("company_name not like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIn(List<String> values) {
            addCriterion("company_name in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotIn(List<String> values) {
            addCriterion("company_name not in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameBetween(String value1, String value2) {
            addCriterion("company_name between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotBetween(String value1, String value2) {
            addCriterion("company_name not between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNull() {
            addCriterion("user_name is null");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNotNull() {
            addCriterion("user_name is not null");
            return (Criteria) this;
        }

        public Criteria andUserNameEqualTo(String value) {
            addCriterion("user_name =", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotEqualTo(String value) {
            addCriterion("user_name <>", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThan(String value) {
            addCriterion("user_name >", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("user_name >=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThan(String value) {
            addCriterion("user_name <", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThanOrEqualTo(String value) {
            addCriterion("user_name <=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLike(String value) {
            addCriterion("user_name like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotLike(String value) {
            addCriterion("user_name not like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameIn(List<String> values) {
            addCriterion("user_name in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotIn(List<String> values) {
            addCriterion("user_name not in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameBetween(String value1, String value2) {
            addCriterion("user_name between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotBetween(String value1, String value2) {
            addCriterion("user_name not between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andOneToThreeIsNull() {
            addCriterion("one_to_three is null");
            return (Criteria) this;
        }

        public Criteria andOneToThreeIsNotNull() {
            addCriterion("one_to_three is not null");
            return (Criteria) this;
        }

        public Criteria andOneToThreeEqualTo(Double value) {
            addCriterion("one_to_three =", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeNotEqualTo(Double value) {
            addCriterion("one_to_three <>", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeGreaterThan(Double value) {
            addCriterion("one_to_three >", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeGreaterThanOrEqualTo(Double value) {
            addCriterion("one_to_three >=", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeLessThan(Double value) {
            addCriterion("one_to_three <", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeLessThanOrEqualTo(Double value) {
            addCriterion("one_to_three <=", value, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeIn(List<Double> values) {
            addCriterion("one_to_three in", values, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeNotIn(List<Double> values) {
            addCriterion("one_to_three not in", values, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeBetween(Double value1, Double value2) {
            addCriterion("one_to_three between", value1, value2, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andOneToThreeNotBetween(Double value1, Double value2) {
            addCriterion("one_to_three not between", value1, value2, "oneToThree");
            return (Criteria) this;
        }

        public Criteria andFourToSixIsNull() {
            addCriterion("four_to_six is null");
            return (Criteria) this;
        }

        public Criteria andFourToSixIsNotNull() {
            addCriterion("four_to_six is not null");
            return (Criteria) this;
        }

        public Criteria andFourToSixEqualTo(Double value) {
            addCriterion("four_to_six =", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixNotEqualTo(Double value) {
            addCriterion("four_to_six <>", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixGreaterThan(Double value) {
            addCriterion("four_to_six >", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixGreaterThanOrEqualTo(Double value) {
            addCriterion("four_to_six >=", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixLessThan(Double value) {
            addCriterion("four_to_six <", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixLessThanOrEqualTo(Double value) {
            addCriterion("four_to_six <=", value, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixIn(List<Double> values) {
            addCriterion("four_to_six in", values, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixNotIn(List<Double> values) {
            addCriterion("four_to_six not in", values, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixBetween(Double value1, Double value2) {
            addCriterion("four_to_six between", value1, value2, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andFourToSixNotBetween(Double value1, Double value2) {
            addCriterion("four_to_six not between", value1, value2, "fourToSix");
            return (Criteria) this;
        }

        public Criteria andSevenToNineIsNull() {
            addCriterion("seven_to_nine is null");
            return (Criteria) this;
        }

        public Criteria andSevenToNineIsNotNull() {
            addCriterion("seven_to_nine is not null");
            return (Criteria) this;
        }

        public Criteria andSevenToNineEqualTo(Double value) {
            addCriterion("seven_to_nine =", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineNotEqualTo(Double value) {
            addCriterion("seven_to_nine <>", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineGreaterThan(Double value) {
            addCriterion("seven_to_nine >", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineGreaterThanOrEqualTo(Double value) {
            addCriterion("seven_to_nine >=", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineLessThan(Double value) {
            addCriterion("seven_to_nine <", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineLessThanOrEqualTo(Double value) {
            addCriterion("seven_to_nine <=", value, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineIn(List<Double> values) {
            addCriterion("seven_to_nine in", values, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineNotIn(List<Double> values) {
            addCriterion("seven_to_nine not in", values, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineBetween(Double value1, Double value2) {
            addCriterion("seven_to_nine between", value1, value2, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andSevenToNineNotBetween(Double value1, Double value2) {
            addCriterion("seven_to_nine not between", value1, value2, "sevenToNine");
            return (Criteria) this;
        }

        public Criteria andTenIsNull() {
            addCriterion("ten is null");
            return (Criteria) this;
        }

        public Criteria andTenIsNotNull() {
            addCriterion("ten is not null");
            return (Criteria) this;
        }

        public Criteria andTenEqualTo(Double value) {
            addCriterion("ten =", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenNotEqualTo(Double value) {
            addCriterion("ten <>", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenGreaterThan(Double value) {
            addCriterion("ten >", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenGreaterThanOrEqualTo(Double value) {
            addCriterion("ten >=", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenLessThan(Double value) {
            addCriterion("ten <", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenLessThanOrEqualTo(Double value) {
            addCriterion("ten <=", value, "ten");
            return (Criteria) this;
        }

        public Criteria andTenIn(List<Double> values) {
            addCriterion("ten in", values, "ten");
            return (Criteria) this;
        }

        public Criteria andTenNotIn(List<Double> values) {
            addCriterion("ten not in", values, "ten");
            return (Criteria) this;
        }

        public Criteria andTenBetween(Double value1, Double value2) {
            addCriterion("ten between", value1, value2, "ten");
            return (Criteria) this;
        }

        public Criteria andTenNotBetween(Double value1, Double value2) {
            addCriterion("ten not between", value1, value2, "ten");
            return (Criteria) this;
        }

        public Criteria andOntToTenIsNull() {
            addCriterion("ont_to_ten is null");
            return (Criteria) this;
        }

        public Criteria andOntToTenIsNotNull() {
            addCriterion("ont_to_ten is not null");
            return (Criteria) this;
        }

        public Criteria andOntToTenEqualTo(Double value) {
            addCriterion("ont_to_ten =", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenNotEqualTo(Double value) {
            addCriterion("ont_to_ten <>", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenGreaterThan(Double value) {
            addCriterion("ont_to_ten >", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenGreaterThanOrEqualTo(Double value) {
            addCriterion("ont_to_ten >=", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenLessThan(Double value) {
            addCriterion("ont_to_ten <", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenLessThanOrEqualTo(Double value) {
            addCriterion("ont_to_ten <=", value, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenIn(List<Double> values) {
            addCriterion("ont_to_ten in", values, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenNotIn(List<Double> values) {
            addCriterion("ont_to_ten not in", values, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenBetween(Double value1, Double value2) {
            addCriterion("ont_to_ten between", value1, value2, "ontToTen");
            return (Criteria) this;
        }

        public Criteria andOntToTenNotBetween(Double value1, Double value2) {
            addCriterion("ont_to_ten not between", value1, value2, "ontToTen");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}